home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / djgpp / tktdoc / qmake.doc < prev    next >
Text File  |  1994-08-11  |  6KB  |  190 lines

  1. QMAKE A SIMPLE MAKE UTILITY
  2.  
  3. QMAKE is a simple make utility that is provided with the toolkit to
  4. allow you to maintain, update and regenerate groups of programs.
  5.  
  6. You may of course use another make utility if you have one that you
  7. are already using.
  8.  
  9. Syntax
  10.  
  11.  qmake [-f makefile] [-hinpqrstx] [macro=val ...]
  12. [target(s) ...]
  13.  
  14. Description
  15.  
  16. Qmake allows the developer to maintain, update, and regenerate groups
  17. of computer programs. The following is a brief description of all
  18. options and some special names:
  19.  
  20. -f,  makefile
  21.  
  22. Description file name. makefile is assumed to be the
  23. name of a description file.
  24.  
  25. -h,
  26.  
  27. Help. Prints syntax and valid parameters.
  28.  
  29. -i,
  30.  
  31. Ignore error codes returned by invoked commands. This
  32. mode is entered if the fake target name .IGNORE appears in the description 
  33. file.
  34.  
  35. -n,
  36.  
  37. No execute mode. Print commands, but do not execute 
  38. them.
  39.  
  40. -p,
  41.  
  42. Print out the complete set of macro definitions and 
  43. target descriptions. 
  44.  
  45. -q, 
  46.  
  47. Question. The make command returns a zero or non-zero 
  48. status code depending on whether the target file is or is not up-to-date.
  49.  
  50. -r,
  51.  
  52. Do not use the built-in rules.
  53.  
  54. -s,
  55.  
  56. Silent mode. Do not print command lines before executing. 
  57. This mode is also entered if the fake target name .SILENT appears 
  58. in the description file.
  59.  
  60. -t,
  61.  
  62. Touch the target files (causing them to be up- to-date) 
  63. rather than issue the usual commands.
  64.  
  65. -v,
  66.  
  67. Make verbosely
  68.  
  69. -x,
  70.  
  71. Use spaces instead of tabs for start of action lines. 
  72. If your makefile does not have a hard tab character at the beginning 
  73. of each action line in the makefile then you will need to use this 
  74. switch which waives that requirement. This switch is useful and is
  75. often put into the QMAKE environment variable so that it will always 
  76. be invoked.
  77.  
  78. .DEFAULT,
  79.  
  80. If a file must be made but there are no explicit commands 
  81. or relevant built-in rules, the commands associated with the name 
  82. .DEFAULT are used if it exists.
  83.  
  84. .PRECIOUS,
  85.  
  86. Dependents of this target will not be removed when quit 
  87. or interrupt are hit.
  88.  
  89. .SILENT,
  90.  
  91. Same effect as the -s option.
  92.  
  93. .IGNORE,
  94.  
  95. Same effect as the -i option.
  96.  
  97. Qmake executes commands in makefile to update one or more target names. 
  98. Name is typically a program. If no -f option is present makefile is 
  99. taken as the default. An environment variable called QMAKE can be 
  100. used to specify the makefile name, e.g. SET QMAKE=-f HCLE .
  101.  
  102. Qmake updates a target only if its dependents are newer than the target. 
  103. All prerequisite files of a target are added recursively to the list 
  104. of targets.
  105.  
  106. makefile contains a sequence of entries that specify dependencies. 
  107. The first line of an entry is a blank-separated, non-null list of 
  108. targets, then a :, then a (possibly null) list of prerequisite files 
  109. or dependencies. Text following a ; and all following lines that begin 
  110. with a tab are shell commands to be executed to update the target. 
  111. The first non-empty line that does not begin with a tab or # begins 
  112. a new dependency or macro definition. Shell commands may be continued 
  113. across lines with the <<backslash>><<new-line>> sequence. Everything printed 
  114. by qmake (except the initial tab) is passed directly to the command 
  115. shell as is.
  116.  
  117. Sharp (#) and new-line surround comments.
  118.  
  119. Commands returning non-zero status normally terminate qmake. If the
  120. -i option is present, or the entry .IGNORE: appears in a makefile,
  121. or the initial character sequence of the command contains -, the error
  122. is ignored.
  123.  
  124.  Environment
  125.  
  126. The makefile processed by qmake can be specified through an environment
  127. variable called qmake. This is of the form:
  128.  
  129. SET QMAKE=-x -f filename
  130.  
  131. When qmake is invoked with no filename specified on the command line
  132. it checks for an environment variable. If this variable exists, the
  133. file specified is used as the input file for qmake.
  134.  
  135.  Include Files
  136.  
  137. If the string include appears as the first seven letters of a line
  138. in a makefile, and is followed by a blank or a tab, the rest of the
  139. line is assumed to be a filename and will be read by the current invocation,
  140. after substituting for any macros.
  141.  
  142.  Macros
  143.  
  144. Entries of the form string1 = string2 are macro definitions. string2
  145. is defined as all characters up to a comment character or an unescaped
  146. new-line. Subsequent appearances of $(string1[:subst1=[subst2]]) are
  147. replaced by string2. The parentheses are optional if a single character
  148. macro name is used and there is no substitute sequence. The optional
  149. :subst1=subst2 is a substitute sequence. If it is specified, all non-overlapping
  150. occurrences of subst1 in the named macro are replaced by subst2. Strings
  151. (for the purposes of this type of substitution) are delimited by blanks,
  152. tabs, new-line characters, and beginnings of lines.
  153.  
  154.  Internal Macros
  155.  
  156. There are four internally maintained macros that are useful for writing
  157. rules for building targets.
  158.  
  159. $*
  160.  
  161. The macro $* stands for the filename part of the current
  162. dependent with the suffix deleted. It is evaluated only for inference
  163. rules.
  164.  
  165. $@
  166.  
  167. The $@ macro stands for the full target name of the
  168. current target. It is evaluated only for explicitly named dependencies.
  169.  
  170. .DEFAULT
  171.  
  172. This is a rule. It is the module that is out-of-date
  173. with respect to the target (i.e., the ``manufactured'' dependent file
  174. name). Thus, in the .c.obj rule, the
  175.  
  176.      .c.obj:
  177.      hc386 -c $*.c
  178.  
  179.      or:
  180.  
  181.      .c.obj:
  182.      hc386 -c $
  183.  
  184. $?
  185.  
  186. The $? macro is evaluated when explicit rules from the
  187. makefile are evaluated. It is the list of prerequisites that are out-of-date
  188. with respect to the target; essentially, those modules which must
  189. be rebuilt.
  190.